Alternativa k MDI
Otázka od: martin
3. 6. 2004 13:22
Dobry den,
viete o nejake free alternative MDI?
Nieco bez nedostatkov MDI.
Predstavujem si to ako nejaky hlavny form, kde ostatne formulare
sa otvaraju cez show alebo showmodal.
Ak form otvorim cez show a minimalizujem, tak sa nebude
minimalizovat na taskbar ale do hlavneho okna podobne ako MDI.
Form otvoreny cez showmodal - minimalizuje aplikaciu.
V podstate mi staci ta minimalizacia nemodalneho formu do hlavneho
formu a maximalizacia nemodalneho formu v ramci hlavneho formu.
Mohlo by to zvladat cascade,zoznam otvorenych formov a pod.
Verim, ze nieco take existuje ....hrabal som aj v JVCL, ale som to
nenasiel - dufam, ze som hrabal nespravne
Na MDI mi vadi:
- ak vytvaram form, hned sa aj zobrazi
- neda sa ovplyvnovat velkost formulara,
stale si to prisposobuju windowsy
- nekorektne funguje aj centrovanie formu
- komplikacia zmeny farby hlavneho formu a vlozenie obrazku sucasne
(jasne, da sa to riesit, ale je to zbytocne kompl.)
- ...kopec dalsich drobnych chyb vychadzajucich zo samotnej impl.MDI
--
Martin
----------
* www.inMail.cz - Vase emailova adresa na cely zivot ZDARMA
* www.czechia.com - profesionalni webhosting a registrace domen za vyhodne ceny
* Zoner Media Explorer 6 - Poznejte kouzlo digitalni fotografie!
(http://www.zoner.cz/zme6)
Odpovedá: Milan Tomes
4. 6. 2004 6:41
> [mailto:delphi-l-owner@clexpert.cz]On Behalf Of martin
> Sent: Thursday, June 03, 2004 1:54 PM
>
> Na MDI mi vadi:
> - ak vytvaram form, hned sa aj zobrazi
No ja to resim tak, ze vsechny formulare vytvarim jako normalni (FormStyle =
fsNormal) a v pripade potreby tuto vlastnost prenastavim na fsMDIChild - mam
overridnute metody Show a ShowModal
> - neda sa ovplyvnovat velkost formulara,
> stale si to prisposobuju windowsy
S timhle nemam jediny problem - v designu nastavim velikost a v runtime mam
tuto velikost pouzitou...
> - nekorektne funguje aj centrovanie formu
To je fakt, ale neni problem to upravit
S pozdravem
Milan Tomes
Odpovedá: Daniel Frantik
7. 6. 2004 12:22
> -----Original Message-----
> Na MDI mi vadi:
A pridej jeste problem s mizejicimi a obcas se zakazujicimi tlacitky pro
minimize/maximize/close ... (ale i toto se da obejit)
Danik
Odpovedá: martin
7. 6. 2004 22:20
>> Na MDI mi vadi:
> A pridej jeste problem s mizejicimi a obcas se zakazujicimi tlacitky pro
> minimize/maximize/close ... (ale i toto se da obejit)
... a to este neviem co ma caka.
Preto Vas prosim, ak mate niekto uz vychytane muchy okolo MDI a
nebranite sa opensource, poslite kusky kodu, pripadne ucelenu unitu,
hoci na sukr.mail, mno myslim ze to tu potesi kazdeho.
Mozno otazka na P.Vonese - nie je nieco ohladom MDI aj sucastou JCL
alebo JVCL ? Zatial som to tam nenasiel, mozno zle hladam.
Vdaka.M.
Odpovedá: Jan Fiala
9. 6. 2004 14:53
3.6.2004 martin:
> Na MDI mi vadi:
> - ak vytvaram form, hned sa aj zobrazi
A proc jej potrebujes mit vytvoreny a nezobrazeny ?
> - neda sa ovplyvnovat velkost formulara, stale si to prisposobuju
> windowsy
> - nekorektne funguje aj centrovanie formu
Da. jen je treba zmenit property u formu z Default treba Designed nebo
MainFormCenter
> - komplikacia zmeny farby hlavneho formu a vlozenie obrazku sucasne
> (jasne, da sa to riesit, ale je to zbytocne kompl.)
Zmena barvy main formu je bez problemu.
S obrazkem je tam komplikace, protoze MDI Main form ma 2 vrstvy
--
Jan Fiala
mailto:jan.fiala@wo.cz
Odpovedá: martin
9. 6. 2004 15:27
Povodna sprava zo dna : 9. 6. 2004, od <jan.fiala@wo.cz> :
>> - ak vytvaram form, hned sa aj zobrazi
JF> A proc jej potrebujes mit vytvoreny a nezobrazeny ?
Napr. preto, ze mam na nom nejaku komponentu, ktoru potrebujem aj inde
- teda jej aktualny stav property a pod.
Jasne, ze to ide urobit inak, ale jednoducho mi vadi ze create
"spusta" hned aj show ....berem, ze to vychadza z architektury MDI, a
preto sa pytam na alternativu.
Este ma napadlo, ak poznate EMS InterbaseManager, tam sa da nastavit prostredie
na:
- office like (vyzera to na upravene MDI)
- delphi like
Ako to robia? Velmi sa mi paci to "delphi like", a prave to ze to
nevyzera na ciste MDI...ci ano? Existuju nejake pravidla, alebo demo,
ako vytvarat prostredie "delphi like?"
>> - komplikacia zmeny farby hlavneho formu a vlozenie obrazku sucasne
>> (jasne, da sa to riesit, ale je to zbytocne kompl.)
JF> Zmena barvy main formu je bez problemu.
JF> S obrazkem je tam komplikace, protoze MDI Main form ma 2 vrstvy
Myslis? Vypni si na Mainforme Ctl3D := False a nastav farbu mainformu
na clWhite. V design time bude White no po spusteni je clAppWorkSpace
Ale toto je detail ... ;)
M.
Odpovedá: Milan Tomes
10. 6. 2004 7:00
> From: delphi-l-owner@clexpert.cz
> [mailto:delphi-l-owner@clexpert.cz]On Behalf Of martin
> Sent: Wednesday, June 09, 2004 4:17 PM
>
> Povodna sprava zo dna : 9. 6. 2004, od <jan.fiala@wo.cz> :
> >> - ak vytvaram form, hned sa aj zobrazi
> JF> A proc jej potrebujes mit vytvoreny a nezobrazeny ?
> Napr. preto, ze mam na nom nejaku komponentu, ktoru potrebujem aj inde
> - teda jej aktualny stav property a pod.
> Jasne, ze to ide urobit inak, ale jednoducho mi vadi ze create
> "spusta" hned aj show ....berem, ze to vychadza z architektury MDI, a
> preto sa pytam na alternativu.
U vsech formu nech FormStyle na fsNormal a zkus pouzit toto:
type
TForm1 = class(TForm)
public
function ShowModal: integer; override;
procedure Show;
end;
procedure TForm1.Show;
begin
if FormStyle = fsNormal then
FormStyle := fsMDIChild;
inherited Show;
end;
function TForm1.ShowModal: integer;
begin
if FormStyle = fsMDIChild then
begin
FormStyle := fsNormal;
Visible := false;
end;
Result := inherited ShowModal;
end;
Nam to funguje bez problemu
S pozdravem
Milan Tomes